7fe25a189e16e07b1cd2c6038b5b0c46986001b1,languages/languageDesign/scopes/runtime/source_gen/jetbrains/mps/lang/scopes/runtime/HidingByNameScope.java,HidingByNameScope,HidingByNameScope,#SNode#SNode#Scope#Scope#,29

Before Change


    this.scope = scope;
    this.parentScope = parentScope;
    this.hidingRootConceptFqName = NameUtil.nodeFQName(hidingRoot);
    this.kindConceptFqName = NameUtil.nodeFQName(kind);
    // todo: maybe lazy in getAvailableElements? 
    // todo: I need this micro optimizations? 
    Iterable<SNode> tmpResult = scope.getAvailableElements(null);

After Change


  private final Set<String> names;

  public HidingByNameScope(SNode hidingRoot, SNode kind, @NotNull Scope scope, @NotNull Scope parentScope) {
    this(NameUtil.nodeFQName(hidingRoot), NameUtil.nodeFQName(kind), scope, parentScope);
  }

  public HidingByNameScope(String hidingRootConceptFQName, String kindConceptFQName, @NotNull Scope scope, @NotNull Scope parentScope) {
    // hiding root: all subconcepts of hidingRoot hide each other